From 2173a540d022cf024d02b8dcf2bd92572b444099 Mon Sep 17 00:00:00 2001 From: Jeffrey Yasskin Date: Sat, 15 Aug 2015 14:50:53 -0700 Subject: [PATCH] Extract the sibling activation function. --- src/cargo/core/resolver/mod.rs | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/src/cargo/core/resolver/mod.rs b/src/cargo/core/resolver/mod.rs index 5d630e2bd..a44c22130 100644 --- a/src/cargo/core/resolver/mod.rs +++ b/src/cargo/core/resolver/mod.rs @@ -397,19 +397,20 @@ fn activate_deps(cx: Box, if !dep.is_transitive() { my_cx.visited.clear(); } + let activate_result = try!(activate(&mut my_cx, registry, candidate, &method)); + let activate_siblings = &mut |cx:Box, registry:&mut Registry| { + activate_deps(cx, registry, parent, platform, deps.clone(), cur + 1, finished) + }; let result: ResolveResult = - match try!(activate(&mut my_cx, registry, candidate, &method)) { + match activate_result { ActivateResult::AlreadyActivated => { - activate_deps(my_cx, registry, parent, platform, deps.clone(), cur + 1, - finished) + activate_siblings(my_cx, registry) } ActivateResult::CheckChildren{id, children, platform} => { activate_deps(my_cx, registry, candidate, platform, children.iter(), 0, &mut |mut cx, registry| { cx.visited.remove(id); - activate_deps(cx, registry, parent, platform, deps.clone(), - cur + 1, finished) - + activate_siblings(cx, registry) }) } }; -- 2.30.2